之前在做這個部分因為不明原因讀不到資料所以被我跳過了,結果在做多元感知器模型的後面步驟發現要使用這邊預先打好的函式所以又回來做。
import numpy as np
import pandas as pd
np.random.seed(10)
from keras.utils import np_utils
np.random.seed(10)
from keras.datasets import mnist
#讀取mnist資料
(x_train_image,y_train_label),
(x_test_image,y_test_label)=mnist.load_data()
#查看mnist資料
print('train data=',len(x_train_image))
print('test data=',len(x_test_image))
#查看訓練資料
print('x_train_image:',x_train_image.shape)
print('y_train_label',y_train_label.shape)
#定義 plot_image來顯示影像
import matplotlib.pyplot as plt
def plot_image(image):
#設定顯示圖片大小
fig = plt.gcf()
fig.set_size_inches(2,2)
#使用plt.show來顯示圖片,讀出image,camp參數設為binary以黑白灰階顯示
plt.imshow(image,cmap='binary')
#開始繪圖
plt.show
#查看第0筆影像
plot_image(x_train_image[0])
#查看第0筆資料
y_train_label[0]
#建立plot_images_labels_prediction查看多筆訓練資料
import matplotlib.pyplot as plt
#plot_images_labels_prediction(數字影像,真實值,預測結果,開始顯示的資料index,顯示幾筆資料(預設是10不超過25))
def plot_images_labels_prediction(images,labels,prediction,idx,num=10):
#設定顯示圖片大小
fig=plt.gcf()
fig.set_size_inches(12,4)
#假如顯示比數超過25,設定為25以免發生錯誤
if num>25:num=25
for i in range(0,num):
ax=plt.subplot(5,5,1+i)#建立subgraph子圖形為5x5
ax.imshow(images[idx],cmap='binary')#畫出子圖形
title="label="+str(labels[idx])#設定子圖形的title,顯示標籤欄位
if len(prediction)>0:#如果有傳入預測結果
title+=",predict="+str(prediction[idx])#標題title加入預測結果
ax.set_title(title,fontsize=10)#設定子圖形的標題title和大小
ax.set_xticks([]);ax.set_yticks([])#設定為不顯示刻度
idx+=1#讀下一筆
plt.show()
#查看前10筆訓練資料
plot_images_labels_prediction(x_train_image,y_train_label,[],0,10)
#查看test測試資料筆數
print ('x_test_image:',x_test_image.shape)
print ('y_test_label:',y_test_label.shape)
##查看前10筆測試資料
plot_images_labels_prediction(x_test_image,y_test_label,[],0,10)
後來我又回去使用jupyter note 發下越用越上手,可以一行一行執行這點也很棒。